MySQL 是目前最流行的开源关系型数据库之一,广泛应用于 Web 开发、后端服务等场景。在 Ubuntu 系统中,我们可以通过官方软件源快速安装、配置 MySQL 8.0,本文将从零开始,手把手教你完成安装、初始化、安全加固、远程连接等全流程操作,新手也能轻松上手。
一、环境说明
本文基于 Ubuntu 20.04 / 22.04 版本(LTS 长期支持版,最常用),安装的是官方源中的 MySQL 8.0 稳定版。
操作全程使用 sudo 管理员权限,确保命令执行成功。
二、前期准备:更新系统软件源
在安装任何软件前,建议先更新 Ubuntu 的软件包索引,确保安装的是最新版本的依赖:
bash
运行
# 更新软件源索引
sudo apt update
# 升级已安装的软件包(可选,推荐执行)
sudo apt upgrade -y
三、安装 MySQL 服务器
Ubuntu 官方软件源已集成 MySQL,直接通过 apt 命令安装即可,无需手动下载安装包:
bash
运行
# 安装 MySQL 服务器
sudo apt install mysql-server -y
安装过程中会自动配置依赖、启动服务,无需手动干预。
安装完成后,MySQL 服务会默认开机自启,我们可以先查看服务状态:
bash
运行
sudo systemctl status mysql
如果看到 active (running) 绿色字样,说明 MySQL 已成功运行。
四、关键初始化:设置 root 账户密码(必做)
坑点说明
Ubuntu 安装的 MySQL 8.0 默认使用 auth_socket 认证插件,root 用户无需密码即可通过本地终端登录,但无法用密码远程 / 工具登录,这不符合我们的使用习惯。
我们需要修改 root 用户的认证方式,并设置自定义密码:
- 无密码登录 MySQL 控制台:
bash
运行
sudo mysql
- 执行命令修改 root 密码(将
你的密码替换为自己的强密码):
sql
-- 修改 root 用户认证方式为密码认证,并设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
-- 刷新权限,使配置生效
FLUSH PRIVILEGES;
- 退出 MySQL 控制台:
sql
exit;
五、安全加固:运行 MySQL 安全配置脚本
MySQL 提供了官方安全脚本 mysql_secure_installation,可以一键完成:
- 设置密码强度校验
- 删除匿名用户
- 禁止 root 用户远程登录
- 删除测试用的数据库
- 刷新权限
执行命令:
bash
运行
sudo mysql_secure_installation
脚本交互步骤(新手参考)
- 询问是否启用密码验证组件:输入
N(新手无需开启,避免密码规则过于严格) - 输入 root 用户的新密码(上一步设置的密码)
- 询问是否删除匿名用户:输入
Y - 询问是否禁止 root 远程登录:输入
Y(安全首选) - 询问是否删除 test 测试数据库:输入
Y - 询问是否立即刷新权限:输入
Y
执行完成后,MySQL 的基础安全配置就完成了!
六、验证安装:登录 MySQL
执行以下命令,用密码登录 MySQL 控制台,验证配置是否生效:
bash
运行
mysql -u root -p
输入你设置的 root 密码,成功进入 MySQL 命令行,说明安装 + 配置全部完成 ✅
查看 MySQL 版本(验证安装):
sql
SELECT VERSION();
七、可选配置:开启 MySQL 远程连接
默认情况下,MySQL 只允许本地(127.0.0.1) 连接,如果你需要用 Navicat、DBeaver 等图形工具远程连接,按以下步骤配置:
1. 修改 MySQL 配置文件
编辑 MySQL 主配置文件,修改绑定地址:
bash
运行
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到这一行:
ini
bind-address = 127.0.0.1
修改为:
ini
bind-address = 0.0.0.0
作用:允许所有 IP 地址访问 MySQL
按
Ctrl+O保存,Ctrl+X退出编辑器。
2. 创建远程访问用户(推荐)
不建议直接用 root 用户远程连接,我们新建一个专用远程用户:
- 登录 MySQL:
mysql -u root -p - 创建用户(
%代表所有 IP 可连接,远程密码自定义):
sql
CREATE USER '远程用户名'@'%' IDENTIFIED WITH mysql_native_password BY '远程密码';
- 授予用户所有权限(生产环境按需授权):
sql
GRANT ALL PRIVILEGES ON *.* TO '远程用户名'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
3. 开放防火墙 3306 端口
Ubuntu 默认启用 UFW 防火墙,需要放行 MySQL 默认端口 3306:
bash
运行
sudo ufw allow 3306/tcp
4. 重启 MySQL 服务
bash
运行
sudo systemctl restart mysql
配置完成!现在可以用图形化工具连接你的 MySQL 了。
八、MySQL 服务常用管理命令
日常使用中,这些命令能帮你快速管理 MySQL 服务:
bash
运行
# 启动 MySQL
sudo systemctl start mysql
# 停止 MySQL
sudo systemctl stop mysql
# 重启 MySQL
sudo systemctl restart mysql
# 设置开机自启(默认已开启)
sudo systemctl enable mysql
# 关闭开机自启
sudo systemctl disable mysql
# 查看 MySQL 运行状态
sudo systemctl status mysql
九、可选:彻底卸载 MySQL
如果需要重装或卸载 MySQL,执行以下命令彻底删除(数据会清空,谨慎操作):
bash
运行
# 停止服务
sudo systemctl stop mysql
# 卸载 MySQL 相关包
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-* -y
# 删除配置和数据文件
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
# 清理无用依赖
sudo apt autoremove -y
sudo apt autoclean
十、常见问题与注意事项
- 登录报错
Access denied检查密码是否正确,确认已修改 root 的认证方式为mysql_native_password。 - 远程连接失败① 检查
bind-address是否改为0.0.0.0② 检查防火墙是否放行 3306 端口③ 检查远程用户是否创建成功 - 安全建议
- 生产环境不要用
%允许所有 IP,改为指定 IP(如'user'@'192.168.1.100') - 密码必须包含字母 + 数字 + 特殊字符,避免弱密码
- 不要暴露 root 用户的远程权限
- 生产环境不要用
总结
本文完整覆盖了 Ubuntu 系统安装 MySQL 8.0 的全流程:
- 一键安装 MySQL 服务器
- 解决默认无密码登录的坑
- 安全加固提升数据库安全性
- 远程连接配置 + 常用命令整个过程简单高效,非常适合 Ubuntu 新手搭建本地 / 服务器的 MySQL 开发环境!